/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DA;

import BE.BELineaCardex;
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author hunter2409
 */
public class DACardex {

    public ArrayList<BELineaCardex> cargarCardex(int idProducto) {
        
        
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;
        ArrayList<BELineaCardex> lstCardex = new ArrayList<BELineaCardex>();
        
        
        try
        {
            //guardo los datos del perfil

            con = bd.conectar();
            //JOptionPane.showMessageDialog(null,"Hola mundo","Error",JOptionPane.ERROR_MESSAGE);
            String query = "SELECT * FROM cardex WHERE idproducto=?";


            PreparedStatement p=con.prepareStatement(query);
            
            p.setInt(1, idProducto);
            
            rs=p.executeQuery();
            
            bd.cierraConexion(con);
            
            while(rs.next())
            {
                BELineaCardex objLineaCardex = new BELineaCardex();
                
                objLineaCardex.setIdCardex(rs.getInt("idcardex"));
                objLineaCardex.setIdProducto(rs.getInt("idproducto"));
                objLineaCardex.setFecha(rs.getTimestamp("fecha"));
                objLineaCardex.setDetalle(rs.getString("detalle"));
                objLineaCardex.setCantIngreso(rs.getInt("cantingreso"));
                objLineaCardex.setCantSalida(rs.getInt("cantsalida"));
                objLineaCardex.setTotalAlmacen(rs.getInt("totalalmacen"));
                
                lstCardex.add(objLineaCardex);
                
            }
            
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Problema al consultar la base de datos"+e.toString(),"Actualizacion del Cardex",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            return null;
            
        }
        
        return lstCardex;
        
        
        
    }
    

    public void guardarInternamiento(BELineaCardex objLineaCardex, int idPallet) {
              
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;
        
        
        
        try
        {
            //guardo los datos del perfil

            con = bd.conectar();
            //JOptionPane.showMessageDialog(null,"Hola mundo","Error",JOptionPane.ERROR_MESSAGE);
            
            
            String query = "INSERT INTO cardex(idproducto, fecha, detalle, cantingreso, cantsalida, totalalmacen, destino, idpallet) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )";
            

            PreparedStatement p=con.prepareStatement(query);
            
            p.setInt(1, objLineaCardex.getIdProducto());
            p.setTimestamp(2, objLineaCardex.getFecha());
            p.setString(3,objLineaCardex.getDetalle());
            p.setInt(4, objLineaCardex.getCantIngreso());
            p.setInt(5, objLineaCardex.getCantSalida());
            p.setInt(6, objLineaCardex.getTotalAlmacen());
            p.setInt(7, objLineaCardex.getDestino());
            p.setInt(8, idPallet);
            p.execute();
            bd.cierraConexion(con);
            
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Problema al consultar la base de datos"+e.toString(),"Actualizacion del Cardex",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            
        }
        
    
    }
    
    public void guardarTranslado(BELineaCardex objLineaCardex, int idPallet) {
              
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;
        
        
        
        try
        {
            //guardo los datos del perfil

            con = bd.conectar();
            //JOptionPane.showMessageDialog(null,"Hola mundo","Error",JOptionPane.ERROR_MESSAGE);
            
            
            String query = "INSERT INTO cardex(idproducto, fecha, detalle, cantingreso, cantsalida, totalalmacen,origen, destino, idpallet) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?)";
            

            PreparedStatement p=con.prepareStatement(query);
            
            p.setInt(1, objLineaCardex.getIdProducto());
            p.setTimestamp(2, objLineaCardex.getFecha());
            p.setString(3,objLineaCardex.getDetalle());
            p.setInt(4, objLineaCardex.getCantIngreso());
            p.setInt(5, objLineaCardex.getCantSalida());
            p.setInt(6, objLineaCardex.getTotalAlmacen());
            p.setInt(7, objLineaCardex.getOrigen());
            p.setInt(8, objLineaCardex.getDestino());
            p.setInt(9, idPallet);
            p.execute();
            bd.cierraConexion(con);
            
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Problema al consultar la base de datos"+e.toString(),"Actualizacion del Cardex",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            
        }
        
    
    }
    
    public void guardarDespacho(BELineaCardex objLineaCardex, int idPallet) {
              
        DAConexion bd = new DAConexion();
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;
        
        
        
        try
        {
            //guardo los datos del perfil

            con = bd.conectar();
            //JOptionPane.showMessageDialog(null,"Hola mundo","Error",JOptionPane.ERROR_MESSAGE);
            
            
            String query = "INSERT INTO cardex(idproducto, fecha, detalle, cantingreso, cantsalida, totalalmacen, origen, idpallet) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?)";
            

            PreparedStatement p=con.prepareStatement(query);
            
            p.setInt(1, objLineaCardex.getIdProducto());
            p.setTimestamp(2, objLineaCardex.getFecha());
            p.setString(3,objLineaCardex.getDetalle());
            p.setInt(4, objLineaCardex.getCantIngreso());
            p.setInt(5, objLineaCardex.getCantSalida());
            p.setInt(6, objLineaCardex.getTotalAlmacen());
            p.setInt(7, objLineaCardex.getOrigen());
            p.setInt(8, idPallet);
            
            p.execute();
            bd.cierraConexion(con);
            
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Problema al consultar la base de datos"+e.toString(),"Actualizacion del Cardex",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            
        }
        
    
    }
    
    
    
   

    public ResultSet buscarCardex(int codigo, int codigo2, java.util.Date FecDe, java.util.Date FecHasta) {
        
        
        DAConexion bd = new DAConexion();
        Connection con = null;
        ResultSet rs = null;
        Statement s = null;
        
        //Select  cardex.fecha,cardex.detalle ,cantingreso-cantsalida as cantidad, origen, destino from cardex , producto where producto.idproducto=cardex.idproducto ;
        String query = "Select cardex.idcardex,cardex.idpallet,cardex.fecha, producto.idproducto,producto.nombre,cardex.detalle ,cantingreso-cantsalida as cantidad, origen, destino from cardex , producto where producto.idproducto=cardex.idproducto ";
               
        
  
         try
        {
            //guardo los datos del perfil
            // and pallet.fecharegistro>=? and pallet.fecharegistro<=? and pallet.fechavencimiento>=? and pallet.fechavencimiento<=?"
             if (codigo!=0) query=query+" and producto.idproducto>= "+codigo;         
             if (codigo2!=0) query=query+" and producto.idproducto<= "+codigo2;
            
             if (FecDe!=null)
            {
               // java.sql.Date auxDate= new java.sql.Date(jdcFecIni.getDate().getTime());
                query=query+" and cardex.fecha>= '"+FecDe+"'";
            }
           
            
            if (FecHasta!=null)
            {
                //java.sql.Date auxDate= new java.sql.Date(jdcFecFin.getDate().getTime());
                query=query+" and cardex.fecha<= '"+FecHasta+"'";
            }
            //JOptionPane.showMessageDialog(null,query,"Error",JOptionPane.ERROR_MESSAGE);
             query=query + " order by producto.idproducto, cardex.fecha";
             
            con = bd.conectar();
            
            PreparedStatement p=con.prepareStatement(query);
            
            rs=p.executeQuery();
            
           
           
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Problema al consultar la base de datos"+e.toString(),"Reportes",JOptionPane.ERROR_MESSAGE);
            bd.cierraConexion(con);
            return null;
            
        }
        bd.cierraConexion(con);
        
    
    
        return rs;
    }
    
}
